Anyone who has ever tried using a camcorder or other portable movie camera knows how challenging it can be to get just the right camera angle and field of view. Trying to film action on a soccer or baseball field presents a number of technical difficulties. Where to stand with the camera, the amount of zoom to employ, the direction to aim the camera, whether to keep the view finder trained on a competitor or at a wider angle to capture action, and other technical issues make the filming endeavor fairly complicated.
Television producers of professional and college sports broadcasts solve these problems by providing many different cameras and switching between the cameras as needed to provide many different viewpoints. Some of the cameras may be located way up in the stands and have very powerful zooming capabilities. Other cameras may be located down on the field to capture the action at field level. Using many different cameras can ensure that no important action is missed.
Cinematographers use even more advanced techniques to capture action for motion pictures. A number of different cameras from many different viewpoints are often used. However, the resulting sequence of scenes that the moviegoer eventually sees is typically the product of extensive editing of the footage captured by all of those different cameras. Cinematographers have the luxury of being able to extensively edit a movie during production. For example, in showing a conversation between an actor and an actress, it is not unusual to have one camera trained on the actor and another camera trained on the actress. One sees the actor from the viewpoint of the actress and vice versa. The same scene is captured several different times from several different viewpoints—and extensive post-filming editing is used to properly sequence all of the image segments.
Some prior 2D games showed all of the action from a distant, fixed viewpoint. Zooming, panning and scrolling were in many cases provided. Nevertheless, the user's basic viewpoint was generally limited to a third-person perspective surveying the entire scene. The introduction of 3D computer graphics to mass market home and arcade video game play allowed video game developers to come closer than ever before to photorealism. Many animated video games now appear so real as to be almost movie like. One innovation introduced with 3D video game play was to use a “virtual camera” within the 3D video game scene to capture desired points of view.
With the introduction of 3D computer graphics technology, it became possible to more flexibly define the viewpoint at any arbitrary position within the 3D world. A changeable 3D viewpoint was something that had been used and explored for many years in 3D computer graphics. In the context of interactive video games, however, modeling of a “virtual camera” within the 3D world itself gave the user great flexibility in terms of visualizing the 3D scene.
In some 3D games, the game player was given the ability to control the position, aiming direction, amount of zoom and/or other virtual camera parameters by for example operating joysticks and/or pushbuttons. This gave the game player the ability to look around the 3D scene, zoom in on distant objects, etc. In some games, this was like handing the game player a camcorder—the game player now had a lot of flexibility, but with that flexibility came additional complexity.
Another type of 3D game called the “first person” game also become popular. In such “first person” games, the video game developer located the camera at the same position within the 3D world as the main animated character's eyes. The video game player thus felt as if he or she was experiencing the 3D world from the same perspective as the game character moving through the 3D world. Some games provided an ability to switch between a first person view and a third person view. First person games can provide a lot of excitement, but “first person” perspectives are not always desirable in every context. Some game play benefits from a “third person” perspective.
While much work has been done in the past in connection with virtual camera control for 3D video game and other interactive computer graphics, further improvements are possible and desirable.
While giving a video game player complete freedom and flexibility in specifying the position, direction and zoom of a virtual camera may sound appealing, some video game players find such added complexity actually detracts from the video game experience. For example, it may be desirable in certain video game and other computer graphics presentations to provide a degree of automatic virtual camera control that simulates what one might see when watching a movie or other cinema graphics presentation of the same action of other events. Intelligent, automatic virtual camera control can allow the video game player to focus on other aspects of game play important to the game play action (e.g., aiming and firing a weapon, maneuvering a watercraft or motor vehicle, running while avoiding a series of obstacles and the like).
The technology herein provides improvements in virtual camera control within a 3D video game or other computer graphics interactive presentation. In one exemplary illustrative non-limiting implementation, the user interactively moves a targeting mark within a 3D world. An animated game character automatically responds to the targeting mark. For example, in one exemplary illustrative non-limiting implementation, an animated game character trains a weapon such as a bow and arrow on the targeting mark and turns and pivots so as to always face the targeting mark. For example, as the game player moves the targeting mark, the animated game character automatically changes the aim of this weapon to follow the targeting mark.
In one exemplary illustrative non-limiting implementation, a virtual camera within the 3D scene may also respond to the targeting mark. For example, the virtual camera can change its field of view (aim up, aim down, zoom in or out if desired, etc.) based on the targeting mark's relative position. However, in one exemplary illustrative non-limiting implementation, the virtual camera may also shift or pivot its position or viewpoint within the 3D world based on the user-placed targeting mark's relative position. For example, the virtual camera can automatically shift its position so that whenever the targeting mark is positioned to the right of the animated game character relative to a reference, the virtual camera looks over the character's right shoulder; and whenever the targeting mark is positioned to the left of the animated game character relative to a reference, the virtual camera looks over the animated character's left shoulder.
In one exemplary illustrative non-limiting implementation, the virtual camera captures the 3D scene from a “third person” viewpoint. In one example implementation, the third person virtual camera may be positioned behind the animated game character so that the scene is viewed over the animated game character's shoulder. In one exemplary illustrative non-limiting implementation, when the game player moves the targeting marker such that the action might be best viewed from another virtual camera position, the virtual camera is automatically pivoted with respect to the animated game character's position so that for example, the scene is now being viewed by looking over the animated game character's other shoulder.
In a further exemplary illustrative non-limiting implementation, the virtual camera remains relatively fixed while the player moves the character around a target. In this exemplary implementation, the character is “locked-on” to the target, so that no matter where the player moves the character, the character remains facing the target and the character's weapon remains facing the target. In this exemplary implementation, as long as the character doesn't attempt to move behind an obstacle (such that the view of the character from the camera would be obstructed) then the camera substantially remains in an original position, from where it was initially looking over a character's shoulder. As the character starts to move behind the target, however, the camera may begin to rotate with the character. Just before the character would pass behind the target (thus obscuring him from view) the camera may begin to rotate around the target in the direction of the character's movement, thereby always keeping the character and the target in view. According to this implementation, it may also be possible to maneuver the character such that it actually does pass behind the target. To avoid the character being obscured by the target for more than a brief moment, if such maneuvering does happen, the camera may immediately switch to a second perspective, such that the character is now shown from the target's other side, having just passed behind it.
In one exemplary illustrative non-limiting implementation, the virtual camera may act as if it is tethered on an invisible tether to the centroid of the game character. The user-controller targeting marker's position relative to the animated game character's centroid is used to determine where the virtual camera is positioned along the arc traced by the invisible tether. In one exemplary illustrative non-limiting implementation, for example, the virtual camera may have two alternative positions—one looking over the animated game character's right shoulder, and the other looking over the animated game character's left shoulder. Which of these two virtual camera positions is automatically selected may depend for example on the user-controlled targeting marker's relative position relative to the animated game character's position and the virtual camera's position. This may also be determined, for example, based on the targeting marker's relative position relative to the character alone.
In one exemplary illustrative non-limiting implementation, an imaginary plane passing through the game character's centroid to the center of the scene and/or the center of the virtual camera's field of view may be used to determine which virtual camera viewpoint to use. If the targeting marker is on the right-hand side of the virtual plane, then the virtual camera position is set to view the scene over the animated game character's right shoulder. If the game player moves the targeting marker to the left of the imaginary plane, then the virtual camera position is pivoted automatically so the scene is now viewed from the perspective of looking over the animated game character's left shoulder. In this way, the virtual camera position captures all of the action (e.g., both the animated game character movements and those of the targets or other parts of the 3D world character is interacting with), without the game player having to worry about the animated game character obstructing the game player's view and without requiring a so-called “first person” viewpoint. Using such an interesting third-person viewpoint, the game player does not necessarily feel as if he or she “is” the animated game character, but is nevertheless able to flexibly control the animated game character's actions while watching everything that is going on in the 3D world and not having to worry unduly about controlling the direction the virtual camera is aiming.
Other exemplary illustrative non-limiting implementations can automatically select between different virtual camera viewpoints depending on a variety of factors including for example the absolute or relative position of a targeting marker, the orientation and actions of the animated game character or characters, additional user inputs and controls, and other factors.
In an additional exemplary illustrative non-limiting implementation, the player may control the game character to “lock on” to a particular target. Once the user selects the particular target by “locking on” to that target, the animated game character may attack or otherwise interact with that target. Virtual camera position can be determined based upon which character has been locked on to, the action developing in the 3D scene, and other factors.
Thus, in one particular implementation, a pivoting camera viewpoint is provided so that when an animated game character uses a bow and arrow or other weapon, the camera adopts a third person 3D view based on the game character's relative position and the target at which the game character is aiming his bow. The user positions a target cursor on the desired target. This causes an imaginary line segment to be drawn in 3D space between the desired target and the game character (or possibly the game character's bow). The imaginary line segment continues through and past the game character. The camera is anchored to the other end of the line segment. This means that the camera is always viewing the target, and the game character is always between the camera and the target. The effect is to pivot the camera around the game character as the user moves the target cursor.
In another exemplary illustrative non-limiting implementation, there are a plurality of targeting modes. In a first “free targeting” mode, the character's position is fixed in either a left or right hand corner of the screen, and the player can freely move the targeting marker around the screen. If the character is in the left corner, the camera looks over the character's right shoulder, and if the character is in the right corner, the camera looks over the character's left shoulder. This generally prevents the character from obstructing the scene, while also showing a third person view including the character. In this exemplary implementation, the player can use a second directional control (other than the one controlling the targeting marker) to move the shown scene around, allowing the character to effectively “spin” in place or look up and down (although the character does not actually change position).
In this exemplary implementation, the character's initial position in the targeting mode, i.e., lower left or lower right corner, is determined based on a position of a cursor prior to entering the mode. According to this exemplary implementation, a moveable cursor is provided within the scene containing the character. If the cursor is to the character's right when the “free targeting” mode is selected, then the character is shifted to the lower left corner and initially aims a weapon to the right. If the cursor is to the character's left when the “free targeting” mode is selected, then the character is shifted to the lower right corner and initially aims a weapon to the left.
The other targeting mode according to this exemplary implementation is a “lock on” mode, wherein a character can move freely but is locked on to a particular target. In this mode, according to this exemplary implementation, the character can roam a full 360° around a target and remains facing the target the entire time. Thus, if a player desires to have a character flank a target to attack a vulnerable spot, for example, the player can lock on to the target and maneuver the character to allow the character to attack from behind. Since the character remains facing the target, the player can instantly attack as soon as the character is in the appropriate position.
According to this exemplary lock on mode implementation, the character is initially shown from a perspective over its left or right shoulder, with the target being shown to the side of the character corresponding to the shoulder being initially looked over (e.g. if the scene is initially shown over the character's right shoulder, the target will be on the right side of the character). If the player maneuvers the character such that the character passes between the camera and the target, then, according to this implementation, the camera view will switch to show a perspective over the character's opposite shoulder, with the target on the character's other side.
In another exemplary target lock on implementation, the game player has control over which individual character or object to “lock on” to in defining an attack.